package io.api.modules.project.service;


import io.admin.common.page.PageData;
import io.admin.common.service.CrudService;

import io.api.modules.project.dto.AnchorDTO;
import io.api.modules.project.dto.PageAnchorDTO;
import io.api.modules.project.entity.AnchorEntity;

import java.util.List;
import java.util.Map;

/**
 * 用户
 *
 * @author Mark sunlightcs@gmail.com
 * @since 1.0.0 2024-07-09
 */
//extends BaseService<AnchorsEntity>
public interface AnchorService extends CrudService<AnchorEntity, AnchorDTO> {

    AnchorEntity insert(AnchorDTO dto);

    /**
     * 判断定位点是否已存在
     * @param name 定位点名称
     * @param projectId 项目ID
     * @return int
     */
    int countByNameAndLineId(String name, Long projectId, Long anchorId);

    /**
     * 根据线路ID查询关联的定位点数量
     * @param lineId 线路ID
     * @return
     */
    int countByLineId(Long lineId);

    List<AnchorDTO> list(Long lineId);

    List<AnchorDTO> listByProjectId(Long projectId);

    PageData<PageAnchorDTO> pageAnchors(Map<String, Object> params);
}